// pages/medical/detail.js
const medicalService = require('../../services/medical');

Page({

  /**
   * 页面的初始数据
   */
  data: {
    recordId: null,
    record: null,
    isLoading: true
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    if (options.id) {
      this.setData({
        recordId: options.id
      });
      this.loadMedicalRecord(options.id);
    } else {
      wx.showToast({
        title: '参数错误',
        icon: 'none'
      });
      setTimeout(() => {
        wx.navigateBack();
      }, 1500);
    }
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {
    // 如果需要刷新数据
    if (this.data.recordId) {
      // this.loadMedicalRecord(this.data.recordId);
    }
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {
    if (this.data.recordId) {
      this.loadMedicalRecord(this.data.recordId);
    }
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  },

  /**
   * 加载健康档案详情
   */
  loadMedicalRecord(id) {
    this.setData({ isLoading: true });
    
    medicalService.getMedicalRecord(id)
      .then(res => {
        if (res) {
          // 格式化日期
          if (res.visitTime) {
            const date = new Date(res.visitTime);
            res.visitTime = this.formatDateTime(date);
          }
          
          this.setData({
            record: res,
            isLoading: false
          });
          
          // 设置页面标题
          wx.setNavigationBarTitle({
            title: '健康档案详情'
          });
        } else {
          this.setData({
            record: null,
            isLoading: false
          });
        }
        wx.stopPullDownRefresh();
      })
      .catch(err => {
        console.error('获取健康档案详情失败', err);
        this.setData({ 
          isLoading: false,
          record: null
        });
        wx.stopPullDownRefresh();
        wx.showToast({
          title: '获取健康档案详情失败',
          icon: 'none'
        });
      });
  },
  
  /**
   * 格式化日期时间
   */
  formatDateTime(date) {
    const year = date.getFullYear();
    const month = (date.getMonth() + 1).toString().padStart(2, '0');
    const day = date.getDate().toString().padStart(2, '0');
    const hour = date.getHours().toString().padStart(2, '0');
    const minute = date.getMinutes().toString().padStart(2, '0');
    
    return `${year}-${month}-${day} ${hour}:${minute}`;
  },
  
  /**
   * 返回上一页
   */
  navigateBack() {
    wx.navigateBack();
  }
})